package com.dhcc.DRGsHosp.facade;

import java.util.List;
import java.util.Map;

import org.dayatang.utils.Page;

import com.dhcc.DRGsHosp.core.domain.ScheduleJob;
import com.dhcc.DRGsHosp.facade.dto.ScheduleJobDTO;

public interface ScheduleJobFacade {
	/**
	 *  addJob.  
	 *  @Description：添加定时任务
	 *  @Author QiaoYiLong
	 *  @param job
	 *  @return 
	 *  @Date:2018年10月11日上午10:22:06
	 */
	public String addJob(Map<String,Object> condition) ;
	/**
	 *  pauseJob.  
	 *  @Description：暂停定时任务
	 *  @Author QiaoYiLong
	 *  @param jobId 
	 *  @Date:2018年10月11日下午4:30:59
	 */
    public void pauseJob(String jobId);
    /**
     *  resumeJob.  
     *  @Description：恢复定时任务
     *  @Author QiaoYiLong
     *  @param jobId 
     *  @Date:2018年10月11日下午4:51:42
     */
    public void resumeJob(String jobId);
	/**
	 *  deleteScheduleJob.  
	 *  @Description：删除定时任务
	 *  @Author QiaoYiLong
	 *  @param jobId 
	 *  @Date:2018年10月12日上午8:53:23
	 */
	public void deleteJob(String jobId);
    /**
     *  runOnce.  
     *  @Description：立即执行定时任务
     *  @Author QiaoYiLong
     *  @param jobId 
     *  @Date:2018年10月11日下午5:03:27
     */
    public void runOnce(String jobId);
    /**
     *  updateCron.  
     *  @Description：更新时间表达式
     *  @Author QiaoYiLong
     *  @param job
     *  @param cronExpression 时间表达式
     *  @Date:2018年10月11日下午5:07:10
     */
    public void updateJob(Map<String,Object> condition);
    /**
     * 通过主键id查找定时任务
     * @param id
     * @return ScheduleJob
     */
	public ScheduleJob getScheduleJobByID(String id);
	/**
	 *  findAllByCondition.  
	 *  @Description：取得全部定时任务信息
	 *  @Author QiaoYiLong
	 *  @return 
	 *  @Date:2018年10月11日下午5:21:21
	 */
	public List<Map<String,Object>> findAllByCondition(Map<String,Object> condition);
	/**
     *  取得任务的分页信息
     */
	public Page<ScheduleJobDTO> pageQueryScheduleJob( int currentPage, int pageSize);
	
	/**
     *  任务名称是否已经存在
     */
	public boolean isScheduleJobExist(String jobName);

}
